package com.robertux.leaderboard.process;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class Main {

	public static void main(String[] args) {
		Calendar calFecha = new GregorianCalendar();
		if(args != null && args.length > 0) {
			if(args.length == 3) {
				try {
					calFecha.set(Calendar.YEAR, Integer.parseInt(args[0]));
					calFecha.set(Calendar.MONTH, Integer.parseInt(args[1])-1);
					calFecha.set(Calendar.DAY_OF_MONTH, Integer.parseInt(args[2]));
				} catch (NumberFormatException e) {
					System.out.println("Error interpretando los parámetros de entrada. Estos deben corresponder con la fecha (año mes día) para la que se desee ejecutar la actualización");
				}
			} else if(args.length == 2) {
				try {
					calFecha.set(Calendar.YEAR, Integer.parseInt(args[0]));
					calFecha.set(Calendar.MONTH, Integer.parseInt(args[1])-1);
					calFecha.set(Calendar.DAY_OF_MONTH, 15);
				} catch (NumberFormatException e) {
					System.out.println("Error interpretando los parámetros de entrada. Estos deben corresponder con la fecha (año mes) para la que se desee ejecutar la actualización");
				}
			} else {
				System.out.println("Parámetros insuficientes. Debe ingresar la fecha (año mes o año mes día) para la que se desee ejecutar la actualización");
			}
		} else {
			calFecha.add(Calendar.DAY_OF_MONTH, -1);
		}
		
		System.out.println("Iniciando el progreso para el mes " + new SimpleDateFormat("MMM/yyyy").format(calFecha.getTime()));
		new ProgressUpdater().updateProgresos(calFecha);
	}

}
